#ifndef __range_h__
#define __range_h__

/* Forward Declarations */

struct ENUMDESC;

/* header files for imported files */
#include "element.h"

/* header files for imported files */
#include "omrect.h"

#ifndef __IHTMLTxtRange_FWD_DEFINED__
#define __IHTMLTxtRange_FWD_DEFINED__
typedef interface IHTMLTxtRange IHTMLTxtRange;
#endif     /* __IHTMLTxtRange_FWD_DEFINED__ */

#ifndef __IHTMLTextRangeMetrics_FWD_DEFINED__
#define __IHTMLTextRangeMetrics_FWD_DEFINED__
typedef interface IHTMLTextRangeMetrics IHTMLTextRangeMetrics;
#endif     /* __IHTMLTextRangeMetrics_FWD_DEFINED__ */

#ifndef __IHTMLTextRangeMetrics2_FWD_DEFINED__
#define __IHTMLTextRangeMetrics2_FWD_DEFINED__
typedef interface IHTMLTextRangeMetrics2 IHTMLTextRangeMetrics2;
#endif     /* __IHTMLTextRangeMetrics2_FWD_DEFINED__ */

#ifndef __IHTMLTxtRangeCollection_FWD_DEFINED__
#define __IHTMLTxtRangeCollection_FWD_DEFINED__
typedef interface IHTMLTxtRangeCollection IHTMLTxtRangeCollection;
#endif     /* __IHTMLTxtRangeCollection_FWD_DEFINED__ */
typedef enum _htmlUnit
{
    htmlUnitCharacter = 1,
    htmlUnitWord = 2,
    htmlUnitSentence = 3,
    htmlUnitTextEdit = 6,
    htmlUnit_Max = 2147483647L
} htmlUnit;


EXTERN_C const ENUMDESC s_enumdeschtmlUnit;

typedef enum _htmlEndPoints
{
    htmlEndPointsStartToStart = 1,
    htmlEndPointsStartToEnd = 2,
    htmlEndPointsEndToStart = 3,
    htmlEndPointsEndToEnd = 4,
    htmlEndPoints_Max = 2147483647L
} htmlEndPoints;


EXTERN_C const ENUMDESC s_enumdeschtmlEndPoints;

typedef enum _htmlDirection
{
    htmlDirectionForward = 99999,
    htmlDirectionBackward = -99999,
    htmlDirection_Max = 2147483647L
} htmlDirection;


EXTERN_C const ENUMDESC s_enumdeschtmlDirection;


#ifndef __IHTMLTxtRange_INTERFACE_DEFINED__

#define __IHTMLTxtRange_INTERFACE_DEFINED__

EXTERN_C const IID IID_IHTMLTxtRange;


MIDL_INTERFACE("3050f220-98b5-11cf-bb82-00aa00bdce0b")
IHTMLTxtRange : public IDispatch
{
public:
    virtual HRESULT STDMETHODCALLTYPE get_htmlText(
         /* [out] */ BSTR * p) = 0;

    virtual HRESULT STDMETHODCALLTYPE put_text(
         /* [in] */ BSTR v) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_text(
         /* [out] */ BSTR * p) = 0;

    virtual HRESULT STDMETHODCALLTYPE parentElement(
            /* [out] */ IHTMLElement** parent) = 0;

    virtual HRESULT STDMETHODCALLTYPE duplicate(
            /* [out] */ IHTMLTxtRange** Duplicate) = 0;

    virtual HRESULT STDMETHODCALLTYPE inRange(
            /* [in] */ IHTMLTxtRange* Range,/* [out] */ VARIANT_BOOL* InRange) = 0;

    virtual HRESULT STDMETHODCALLTYPE isEqual(
            /* [in] */ IHTMLTxtRange* Range,/* [out] */ VARIANT_BOOL* IsEqual) = 0;

    virtual HRESULT STDMETHODCALLTYPE scrollIntoView(
            /* [in] */ VARIANT_BOOL fStart) = 0;

    virtual HRESULT STDMETHODCALLTYPE collapse(
            /* [in] */ VARIANT_BOOL Start) = 0;

    virtual HRESULT STDMETHODCALLTYPE expand(
            /* [in] */ BSTR Unit,/* [out] */ VARIANT_BOOL* Success) = 0;

    virtual HRESULT STDMETHODCALLTYPE move(
            /* [in] */ BSTR Unit,/* [in] */ long Count,/* [out] */ long* ActualCount) = 0;

    virtual HRESULT STDMETHODCALLTYPE moveStart(
            /* [in] */ BSTR Unit,/* [in] */ long Count,/* [out] */ long* ActualCount) = 0;

    virtual HRESULT STDMETHODCALLTYPE moveEnd(
            /* [in] */ BSTR Unit,/* [in] */ long Count,/* [out] */ long* ActualCount) = 0;

    virtual HRESULT STDMETHODCALLTYPE select(
            ) = 0;

    virtual HRESULT STDMETHODCALLTYPE pasteHTML(
            /* [in] */ BSTR html) = 0;

    virtual HRESULT STDMETHODCALLTYPE moveToElementText(
            /* [in] */ IHTMLElement* element) = 0;

    virtual HRESULT STDMETHODCALLTYPE setEndPoint(
            /* [in] */ BSTR how,/* [in] */ IHTMLTxtRange* SourceRange) = 0;

    virtual HRESULT STDMETHODCALLTYPE compareEndPoints(
            /* [in] */ BSTR how,/* [in] */ IHTMLTxtRange* SourceRange,/* [out] */ long* ret) = 0;

    virtual HRESULT STDMETHODCALLTYPE findText(
            /* [in] */ BSTR String,/* [in] */ long count,/* [in] */ long Flags,/* [out] */ VARIANT_BOOL* Success) = 0;

    virtual HRESULT STDMETHODCALLTYPE moveToPoint(
            /* [in] */ long x,/* [in] */ long y) = 0;

    virtual HRESULT STDMETHODCALLTYPE getBookmark(
            /* [out] */ BSTR* Boolmark) = 0;

    virtual HRESULT STDMETHODCALLTYPE moveToBookmark(
            /* [in] */ BSTR Bookmark,/* [out] */ VARIANT_BOOL* Success) = 0;

    virtual HRESULT STDMETHODCALLTYPE queryCommandSupported(
            /* [in] */ BSTR cmdID,/* [out] */ VARIANT_BOOL* pfRet) = 0;

    virtual HRESULT STDMETHODCALLTYPE queryCommandEnabled(
            /* [in] */ BSTR cmdID,/* [out] */ VARIANT_BOOL* pfRet) = 0;

    virtual HRESULT STDMETHODCALLTYPE queryCommandState(
            /* [in] */ BSTR cmdID,/* [out] */ VARIANT_BOOL* pfRet) = 0;

    virtual HRESULT STDMETHODCALLTYPE queryCommandIndeterm(
            /* [in] */ BSTR cmdID,/* [out] */ VARIANT_BOOL* pfRet) = 0;

    virtual HRESULT STDMETHODCALLTYPE queryCommandText(
            /* [in] */ BSTR cmdID,/* [out] */ BSTR* pcmdText) = 0;

    virtual HRESULT STDMETHODCALLTYPE queryCommandValue(
            /* [in] */ BSTR cmdID,/* [out] */ VARIANT* pcmdValue) = 0;

    virtual HRESULT STDMETHODCALLTYPE execCommand(
            /* [in] */ BSTR cmdID,/* [in] */ VARIANT_BOOL showUI,/* [in] */ VARIANT value,/* [out] */ VARIANT_BOOL* pfRet) = 0;

    virtual HRESULT STDMETHODCALLTYPE execCommandShowHelp(
            /* [in] */ BSTR cmdID,/* [out] */ VARIANT_BOOL* pfRet) = 0;

};

#endif     /* __IHTMLTxtRange_INTERFACE_DEFINED__ */


#ifndef __IHTMLTextRangeMetrics_INTERFACE_DEFINED__

#define __IHTMLTextRangeMetrics_INTERFACE_DEFINED__

EXTERN_C const IID IID_IHTMLTextRangeMetrics;


MIDL_INTERFACE("3050f40b-98b5-11cf-bb82-00aa00bdce0b")
IHTMLTextRangeMetrics : public IDispatch
{
public:
    virtual HRESULT STDMETHODCALLTYPE get_offsetTop(
         /* [out] */ long * p) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_offsetLeft(
         /* [out] */ long * p) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_boundingTop(
         /* [out] */ long * p) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_boundingLeft(
         /* [out] */ long * p) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_boundingWidth(
         /* [out] */ long * p) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_boundingHeight(
         /* [out] */ long * p) = 0;

};

#endif     /* __IHTMLTextRangeMetrics_INTERFACE_DEFINED__ */


#ifndef __IHTMLTextRangeMetrics2_INTERFACE_DEFINED__

#define __IHTMLTextRangeMetrics2_INTERFACE_DEFINED__

EXTERN_C const IID IID_IHTMLTextRangeMetrics2;


MIDL_INTERFACE("3050f4a6-98b5-11cf-bb82-00aa00bdce0b")
IHTMLTextRangeMetrics2 : public IDispatch
{
public:
    virtual HRESULT STDMETHODCALLTYPE getClientRects(
            /* [out] */ IHTMLRectCollection** pRectCol) = 0;

    virtual HRESULT STDMETHODCALLTYPE getBoundingClientRect(
            /* [out] */ IHTMLRect** pRect) = 0;

};

#endif     /* __IHTMLTextRangeMetrics2_INTERFACE_DEFINED__ */


#ifndef __IHTMLTxtRangeCollection_INTERFACE_DEFINED__

#define __IHTMLTxtRangeCollection_INTERFACE_DEFINED__

EXTERN_C const IID IID_IHTMLTxtRangeCollection;


MIDL_INTERFACE("3050f7ed-98b5-11cf-bb82-00aa00bdce0b")
IHTMLTxtRangeCollection : public IDispatch
{
public:
    virtual HRESULT STDMETHODCALLTYPE get_length(
         /* [out] */ long * p) = 0;

    virtual HRESULT STDMETHODCALLTYPE get__newEnum(
         /* [out] */ IUnknown* * p) = 0;

    virtual HRESULT STDMETHODCALLTYPE item(
            /* [in] */ VARIANT* pvarIndex,/* [out] */ VARIANT* pvarResult) = 0;

};

#endif     /* __IHTMLTxtRangeCollection_INTERFACE_DEFINED__ */


#ifndef _CAutoRange_PROPDESCS_
EXTERN_C const PROPERTYDESC_BASIC_ABSTRACT s_propdescCAutoRangehtmlText;
EXTERN_C const PROPERTYDESC_BASIC_ABSTRACT s_propdescCAutoRangetext;
EXTERN_C const PROPERTYDESC_METHOD s_methdescCAutoRangeparentElement;
EXTERN_C const PROPERTYDESC_METHOD s_methdescCAutoRangeduplicate;
EXTERN_C const PROPERTYDESC_METHOD s_methdescCAutoRangeinRange;
EXTERN_C const PROPERTYDESC_METHOD s_methdescCAutoRangeisEqual;
EXTERN_C const PROPERTYDESC_METHOD s_methdescCAutoRangescrollIntoView;
EXTERN_C const PROPERTYDESC_METHOD s_methdescCAutoRangecollapse;
EXTERN_C const PROPERTYDESC_METHOD s_methdescCAutoRangeexpand;
EXTERN_C const PROPERTYDESC_METHOD s_methdescCAutoRangefindText;
EXTERN_C const PROPERTYDESC_METHOD s_methdescCAutoRangegetBookmark;
EXTERN_C const PROPERTYDESC_METHOD s_methdescCAutoRangemoveToBookmark;
EXTERN_C const PROPERTYDESC_METHOD s_methdescCAutoRangemoveToPoint;
EXTERN_C const PROPERTYDESC_METHOD s_methdescCAutoRangemoveToElementText;
EXTERN_C const PROPERTYDESC_METHOD s_methdescCAutoRangemove;
EXTERN_C const PROPERTYDESC_METHOD s_methdescCAutoRangemoveStart;
EXTERN_C const PROPERTYDESC_METHOD s_methdescCAutoRangemoveEnd;
EXTERN_C const PROPERTYDESC_METHOD s_methdescCAutoRangesetEndPoint;
EXTERN_C const PROPERTYDESC_METHOD s_methdescCAutoRangecompareEndPoints;
EXTERN_C const PROPERTYDESC_METHOD s_methdescCAutoRangeselect;
EXTERN_C const PROPERTYDESC_METHOD s_methdescCAutoRangepasteHTML;
EXTERN_C const PROPERTYDESC_METHOD s_methdescCAutoRangequeryCommandSupported;
EXTERN_C const PROPERTYDESC_METHOD s_methdescCAutoRangequeryCommandEnabled;
EXTERN_C const PROPERTYDESC_METHOD s_methdescCAutoRangequeryCommandState;
EXTERN_C const PROPERTYDESC_METHOD s_methdescCAutoRangequeryCommandIndeterm;
EXTERN_C const PROPERTYDESC_METHOD s_methdescCAutoRangequeryCommandText;
EXTERN_C const PROPERTYDESC_METHOD s_methdescCAutoRangequeryCommandValue;
EXTERN_C const PROPERTYDESC_METHOD s_methdescCAutoRangeexecCommand;
EXTERN_C const PROPERTYDESC_METHOD s_methdescCAutoRangeexecCommandShowHelp;
EXTERN_C const PROPERTYDESC_BASIC_ABSTRACT s_propdescCAutoRangeoffsetTop;
EXTERN_C const PROPERTYDESC_BASIC_ABSTRACT s_propdescCAutoRangeoffsetLeft;
EXTERN_C const PROPERTYDESC_BASIC_ABSTRACT s_propdescCAutoRangeboundingTop;
EXTERN_C const PROPERTYDESC_BASIC_ABSTRACT s_propdescCAutoRangeboundingLeft;
EXTERN_C const PROPERTYDESC_BASIC_ABSTRACT s_propdescCAutoRangeboundingWidth;
EXTERN_C const PROPERTYDESC_BASIC_ABSTRACT s_propdescCAutoRangeboundingHeight;
EXTERN_C const PROPERTYDESC_METHOD s_methdescCAutoRangegetClientRects;
EXTERN_C const PROPERTYDESC_METHOD s_methdescCAutoRangegetBoundingClientRect;

#endif

#ifndef _CAutoRangeCollection_PROPDESCS_
EXTERN_C const PROPERTYDESC_BASIC_ABSTRACT s_propdescCAutoRangeCollectionlength;
EXTERN_C const PROPERTYDESC_BASIC_ABSTRACT s_propdescCAutoRangeCollection_newEnum;
EXTERN_C const PROPERTYDESC_METHOD s_methdescCAutoRangeCollectionitem;

#endif


#endif /*__range_h__*/

